package org.csu.softwaremetrics_demo.entity.result;

import java.util.Collection;

/**
 * @Description:
  Result接口定义了一个度量结果的管理器，用于存储和检索单个类度量结果。
  该接口提供了添加、获取和列出所有度量结果的方法。
 *
 * @Author: Jukomu
 * @Package: org.csu.softwaremetrics_demo.entity.result
 * @Project: SoftwareMetrics_demo
 * @name: Result
 * @param <SingleClassMetric> 度量结果的类型，具体类型由实现类决定
 * @Date: 2025/4/7-14:54
 * @Filename: Result
 */
public interface Result<SingleClassMetric> {

    /**
     * 添加一个类的度量结果
     * @param obj 要添加的度量结果对象
     */
    public void add(SingleClassMetric obj);

    /**
     * 根据文件名获取度量结果
     * @param name 文件名
     * @return 对应的度量结果，如果不存在返回null
     */
    public SingleClassMetric get(String name);

    /**
     * 获取所有度量结果
     * @return 所有度量结果的集合
     */
    public Collection<SingleClassMetric> all();

    /**
     * 根据类名获取度量结果
     * @param name 完全限定的类名
     * @return 对应的度量结果，如果不存在返回null
     */
    public SingleClassMetric getByClassName(String name);
}
